package com.yuan.algorithms.算法导论_第一部分;

import java.math.BigDecimal;

/**
 * @author YouYuan
 * <br>E-mail:1265161633@qq.com
 * <br>创建时间：2015年11月21日 下午12:28:01
 * <br>说明:
 */
public class 斐波那契数 {

	static final double Q = 1.61803;
	static final double _Q = 0.61803;
	public static void main(String[] args) {
		for (int i = 1; i < 30; i++) {
			System.out.print(fibonacci(i)+"\t");
		}
		System.out.println();
		for (int i = 1; i < 30; i++) {
			System.out.print(f(i)+"\t");
		}
	}
	private static long f(int i) {
		if (i == 1) {
			return 0;
		} else if (i == 2) {
			return 1;
		}
		return f(i-1)+f(i-2);
		
	}
	private static String fibonacci(int i) {
		double r = (Math.pow(Q, i) - Math.pow(_Q, i))/Math.sqrt(5.0);
		return new BigDecimal(""+r).setScale(0, BigDecimal.ROUND_HALF_UP).toString();
	}

}
